home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / PIL / ImageGrab.py < prev    next >
Text File  |  2006-12-03  |  2KB  |  72 lines

  1. #
  2. # The Python Imaging Library
  3. # $Id: ImageGrab.py 2134 2004-10-06 08:55:20Z fredrik $
  4. #
  5. # screen grabber (windows only)
  6. #
  7. # History:
  8. # 2001-04-26 fl  created
  9. # 2001-09-17 fl  use builtin driver, if present
  10. # 2002-11-19 fl  added grabclipboard support
  11. #
  12. # Copyright (c) 2001-2002 by Secret Labs AB
  13. # Copyright (c) 2001-2002 by Fredrik Lundh
  14. #
  15. # See the README file for information on usage and redistribution.
  16. #
  17.  
  18. import Image
  19.  
  20. ##
  21. # (New in 1.1.3)  The <b>ImageGrab</b> module can be used to copy
  22. # the contents of the screen to a PIL image memory.
  23. # <p>
  24. # The current version works on Windows only.</p>
  25. #
  26. # @since 1.1.3
  27. ##
  28.  
  29. try:
  30.     # built-in driver (1.1.3 and later)
  31.     grabber = Image.core.grabscreen
  32. except AttributeError:
  33.     # stand-alone driver (pil plus)
  34.     import _grabscreen
  35.     grabber = _grabscreen.grab
  36.  
  37. ##
  38. # (New in 1.1.3) Take a snapshot of the screen.  The pixels inside the
  39. # bounding box are returned as an "RGB" image.  If the bounding box is
  40. # omitted, the entire screen is copied.
  41. #
  42. # @param bbox What region to copy.  Default is the entire screen.
  43. # @return An image
  44. # @since 1.1.3
  45.  
  46. def grab(bbox=None):
  47.     size, data = grabber()
  48.     im = Image.fromstring(
  49.         "RGB", size, data,
  50.         # RGB, 32-bit line padding, origo in lower left corner
  51.         "raw", "BGR", (size[0]*3 + 3) & -4, -1
  52.         )
  53.     if bbox:
  54.         im = im.crop(bbox)
  55.     return im
  56.  
  57. ##
  58. # (New in 1.1.4) Take a snapshot of the clipboard image, if any.
  59. #
  60. # @return An image, a list of filenames, or None if the clipboard does
  61. #     not contain image data or filenames.  Note that if a list is
  62. #     returned, the filenames may not represent image files.
  63. # @since 1.1.4
  64.  
  65. def grabclipboard():
  66.     debug = 0 # temporary interface
  67.     data = Image.core.grabclipboard(debug)
  68.     if Image.isStringType(data):
  69.         import BmpImagePlugin, StringIO
  70.         return BmpImagePlugin.DibImageFile(StringIO.StringIO(data))
  71.     return data
  72.